package com.sihai.ehr.model.biz;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;

import com.sihai.core.BaseEntity;
import com.sihai.ehr.model.sys.InviteEnum;

/**
 * 员工招聘复试对象
 * 
 * @author Henry-PC
 * 
 */
@Entity
public class InterviewRetrial extends BaseEntity<Long> {

	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = -5187102412945158570L;

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long id;
	/** 面试按排ID */
	@OneToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "interview_id")
	private InterviewArrange interviewArrange;

	/** 表达程度 */
	@Enumerated(EnumType.STRING)
	private InviteEnum expression;
	/** 机敏、反应程度 */
	@Enumerated(EnumType.STRING)
	private InviteEnum astute;
	/** 情绪稳定程度 */
	@Enumerated(EnumType.STRING)
	private InviteEnum emotionality;
	/** 自信心程度 */
	@Enumerated(EnumType.STRING)
	private InviteEnum selfConfidence;
	/** 本职知识程度 */
	@Enumerated(EnumType.STRING)
	private InviteEnum jobEpisteme;
	/** 经历与本职适合 */
	@Enumerated(EnumType.STRING)
	private InviteEnum jobExperience;
	/** 技能熟练度 */
	@Enumerated(EnumType.STRING)
	private InviteEnum proficiency;
	/** 评价 */
	private String appraise;
	/** 评价结果 */
	@Enumerated(EnumType.STRING)
	private InviteEnum appraiseResult;

	/** 录用职等ID(HR_ Grade.id) */
	@OneToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "grade_give_id")
	private Grade gradeGive;

	/** 建议职等ID(HR_ Grade.id) */
	@OneToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "grade_advice_id")
	private Grade gradeAdvice;

	/** 报到时间 */
	private Date registerDate;

	/** 1-删除，0-使用 */
	@Column(length = 1)
	private boolean cancel;

	@Override
	public Long getId() {
		// TODO Auto-generated method stub
		return this.id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public InterviewArrange getInterviewArrange() {
		return interviewArrange;
	}

	public void setInterviewArrange(InterviewArrange interviewArrange) {
		this.interviewArrange = interviewArrange;
	}

	public InviteEnum getExpression() {
		return expression;
	}

	public void setExpression(InviteEnum expression) {
		this.expression = expression;
	}

	public InviteEnum getAstute() {
		return astute;
	}

	public void setAstute(InviteEnum astute) {
		this.astute = astute;
	}

	public InviteEnum getEmotionality() {
		return emotionality;
	}

	public void setEmotionality(InviteEnum emotionality) {
		this.emotionality = emotionality;
	}

	public InviteEnum getSelfConfidence() {
		return selfConfidence;
	}

	public void setSelfConfidence(InviteEnum selfConfidence) {
		this.selfConfidence = selfConfidence;
	}

	public InviteEnum getJobEpisteme() {
		return jobEpisteme;
	}

	public void setJobEpisteme(InviteEnum jobEpisteme) {
		this.jobEpisteme = jobEpisteme;
	}

	public InviteEnum getJobExperience() {
		return jobExperience;
	}

	public void setJobExperience(InviteEnum jobExperience) {
		this.jobExperience = jobExperience;
	}

	public InviteEnum getProficiency() {
		return proficiency;
	}

	public void setProficiency(InviteEnum proficiency) {
		this.proficiency = proficiency;
	}

	public String getAppraise() {
		return appraise;
	}

	public void setAppraise(String appraise) {
		this.appraise = appraise;
	}

	public InviteEnum getAppraiseResult() {
		return appraiseResult;
	}

	public void setAppraiseResult(InviteEnum appraiseResult) {
		this.appraiseResult = appraiseResult;
	}

	public Grade getGradeGive() {
		return gradeGive;
	}

	public void setGradeGive(Grade gradeGive) {
		this.gradeGive = gradeGive;
	}

	public Grade getGradeAdvice() {
		return gradeAdvice;
	}

	public void setGradeAdvice(Grade gradeAdvice) {
		this.gradeAdvice = gradeAdvice;
	}

	public Date getRegisterDate() {
		return registerDate;
	}

	public void setRegisterDate(Date registerDate) {
		this.registerDate = registerDate;
	}

	public boolean getCancel() {
		return cancel;
	}

	public void setCancel(boolean cancel) {
		this.cancel = cancel;
	}

}
